import java.util.Arrays;

/**
 * @User: vitobo
 * @Date: 2024-05-24
 * @Description: 接口间的继承
 *
 *
 * 接口和接口之间, 继承使用的是 extends
 * interface D extends A,B
 *
 * 类和接口之间, 使用的是implements
 * class C implements A,B
 *
 *
 * 抽象类 和 接口 的区别?
 *  1. 类和类之间是单继承的, 一个类可以实现多个接口, 接口和接口之间可以多继承
 *  2. 抽象类中可以包含普通方法和普通字段, 这样的普通方法和字段可以被子类直接使用
 *     而接口中不能包含普通方法, 子类必须重写所有的抽象方法
 *  3.
 *
 */

//interface IRunning1{
//    void run();
//}
//
//interface ISwimming1{
//    void swim();
//}
//
//interface IAmphibious extends IRunning,ISwimming{
//
//}
//
//class Forg implements IAmphibious{
//
//    @Override
//    public void swimming() {
//
//    }
//
//    @Override
//    public void running() {
//
//    }
//}


// 接口使用
class Student implements  Comparable{
    private String name;
    private int score;

    public Student(String name, int score){
        this.name = name;
        this.score = score;
    }

    @Override
    public String toString(){
        return "[" + this.name + "." + this.score + "]";
    }

    @Override
    public int compareTo(Object o) {
        Student s = (Student)o;
        if(this.score > s.score){
            return -1;
        }else if(this.score < s.score){
            return 1;
        }else{
            return 0;
        }
    }
}

public class Test4 {

    public static void main(String[] args) {
        Student[] students = new Student[]{
                new Student("张三", 15),
                new Student("李四", 23),
                new Student("王五", 37),
                new Student("赵六", 91)
        };

        Arrays.sort(students);
        System.out.println(Arrays.toString(students));
    }


}
